func go/types.under

75 uses

	go/types (current package)
		assignments.go#L75: 	if sig, _ := under(x.typ).(*Signature); sig != nil && sig.TypeParams().Len() > 0 {
		builtins.go#L161: 		switch t := arrayPtrDeref(under(x.typ)).(type) {
		builtins.go#L218: 		if mode == invalid && under(x.typ) != Typ[Invalid] {
		builtins.go#L320: 			if t, _ := under(typ).(*Basic); t != nil {
		builtins.go#L448: 			if t, _ := under(typ).(*Basic); t != nil {
		builtins.go#L738: 		typ, _ := under(x.typ).(*Pointer)
		builtins.go#L803: 	switch u := under(t).(type) {
		builtins.go#L895: 		if a, _ := under(p.base).(*Array); a != nil {
		call.go#L140: 				if t, _ := under(T).(*Interface); t != nil && !isTypeParam(T) {
		call.go#L548: 		if under(x.typ) == Typ[Invalid] {
		conversions.go#L20: 		switch t, _ := under(T).(*Basic); {
		conversions.go#L138: 	Vu := under(V)
		conversions.go#L139: 	Tu := under(T)
		conversions.go#L151: 			if IdenticalIgnoreTags(under(V.base), under(T.base)) && !isTypeParam(V.base) && !isTypeParam(T.base) {
		conversions.go#L191: 			if a, _ := under(p.Elem()).(*Array); a != nil {
		conversions.go#L270: 	t, _ := under(typ).(*Basic)
		conversions.go#L275: 	t, _ := under(typ).(*Basic)
		conversions.go#L280: 	_, ok := under(typ).(*Pointer)
		conversions.go#L285: 	if s, _ := under(typ).(*Slice); s != nil {
		conversions.go#L286: 		t, _ := under(s.elem).(*Basic)
		decl.go#L437: 			if under(t) != Typ[Invalid] {
		expr.go#L106: 		check.representable(x, under(x.typ).(*Basic))
		expr.go#L153: 	return f(under(typ))
		expr.go#L558: 		old.typ = under(typ).(*Basic)
		expr.go#L651: 	switch u := under(target).(type) {
		expr.go#L856: 	switch under(typ).(type) {
		expr.go#L870: 	switch under(typ).(type) {
		expr.go#L1563: 		if _, ok := under(x.typ).(*Interface); !ok {
		expr.go#L1685: 	method, alt := check.assertableTo(under(x.typ).(*Interface), T)
		index.go#L38: 		if sig, _ := under(x.typ).(*Signature); sig != nil && sig.TypeParams().Len() > 0 {
		index.go#L53: 	switch typ := under(x.typ).(type) {
		index.go#L76: 		if typ, _ := under(typ.base).(*Array); typ != nil {
		index.go#L127: 				if t, _ := under(t.base).(*Array); t != nil {
		index.go#L257: 		if u, _ := under(u.base).(*Array); u != nil {
		infer.go#L528: 						tx = under(tx)
		infer.go#L682: 			assert(debug && under(single.typ) == coreType(tpar))
		instantiate.go#L157: 	Vu := under(V)
		instantiate.go#L158: 	Tu := under(T)
		instantiate.go#L162: 	if p, _ := Vu.(*Pointer); p != nil && under(p.base) == Typ[Invalid] {
		instantiate.go#L236: 			if alt == nil && !t.tilde && Identical(t.typ, under(t.typ)) {
		lookup.go#L100: 		if _, ok := under(typ).(*Interface); ok {
		lookup.go#L151: 			switch t := under(typ).(type) {
		lookup.go#L314: 	if u, _ := under(V).(*Interface); u != nil {
		lookup.go#L408: 	p, _ := under(T).(*Pointer)
		lookup.go#L415: 	if p, _ := under(T).(*Pointer); isTypeParam(p.base) {
		lookup.go#L481: 	if p, _ := under(typ).(*Pointer); p != nil {
		lookup.go#L482: 		if _, ok := under(p.base).(*Struct); ok {
		methodset.go#L128: 			switch t := under(typ).(type) {
		object.go#L480: 			typ = under(typ)
		operand.go#L246: 	Vu := under(V)
		operand.go#L247: 	Tu := under(T)
		predicates.go#L29: 	u, _ := under(t).(*Basic)
		predicates.go#L86: 	_, ok := under(t).(*Interface)
		predicates.go#L121: 	switch t := under(T).(type) {
		predicates.go#L154: 	switch u := under(t).(type) {
		sizes.go#L51: 	switch t := under(T).(type) {
		sizes.go#L126: 	switch t := under(T).(type) {
		sizes.go#L252: 		s := under(typ).(*Struct)
		stmt.go#L692: 			if _, ok := under(x.typ).(*Interface); ok {
		struct.go#L146: 				switch u := under(t).(type) {
		type.go#L21: func under(t Type) Type {
		type.go#L37: 		return under(t)
		type.go#L66: 		return under(t) // string or untyped string
		typeparam.go#L111: 	switch u := under(bound).(type) {
		typeset.go#L137: 			u = under(u)
		typeset.go#L140: 			assert(Identical(u, under(u)))
		typeset.go#L272: 		switch u := under(typ).(type) {
		typeset.go#L404: 		u := under(t.typ)
		typestring.go#L424: 					if t, _ := under(typ).(*Basic); t == nil || t.kind != String {
		typeterm.go#L119: 		u = under(u)
		typeterm.go#L159: 		ux = under(ux)
		typeterm.go#L163: 		uy = under(uy)
		typexpr.go#L163: 		if t, _ := under(typ).(*Interface); t != nil {
		union.go#L96: 			u := under(t.typ)